package _go

func deleteDuplicates(head *ListNode) *ListNode {
	if head == nil {
		return nil
	}
	//先定义一个返回链表头
	dummy := &ListNode{0, head}
	//借助临时节点头遍历整个链表
	cur := dummy
	for cur.Next != nil && cur.Next.Next != nil {
		//如果next 和 next。next相等 说明是重复数据 直接进入删除循环
		if cur.Next.Val == cur.Next.Next.Val {
			//定义一个临时变量存储 重复的值
			x := cur.Next.Val
			//不空切和x相等 直接删除
			for cur.Next != nil && cur.Next.Val == x {
				cur.Next = cur.Next.Next
			}
		} else {
			//遍历下一个节点
			cur = cur.Next
		}
	}

	return dummy.Next
}
